//
//  def_all_functions.h
//  compilation
//
//  Created by Kevin Le perf on 17/01/12.
//  Copyright (c) 2012 e2co technologie. All rights reserved.
//

#ifndef compilation_def_all_functions_h
#define compilation_def_all_functions_h

struct def_additive_expression;
struct def_argument_expression_list;
struct def_comparison_expression;
struct def_compound_statement;
struct def_declaration;
struct def_declaration_list;
struct def_declarator;
struct def_declarator_list;
struct def_expression;
struct def_expression_statement;
struct def_external_declaration;
struct def_function_definition;
struct def_iteration_statement;
struct def_jump_statement;
struct def_multiplicative_expression;
struct def_parameter_declaration;
struct def_parameter_list;
struct def_postfixe_expression;
struct def_primary_expression;
struct def_program;
struct def_selection_statement;
struct def_statement;
struct def_statement_list;
struct def_unary_expression;

struct def_additive_expression * additive_expression_create(void * parent);
struct def_argument_expression_list * argument_expression_list_create(void * parent);
struct def_comparison_expression * comparison_expression_create(void * parent);
struct def_compound_statement * compound_statement_create(void * parent);
struct def_declaration * declaration_create(void * parent);
struct def_declaration_list * declaration_list_create(void * parent);
struct def_declarator * declarator_create(void * parent);
struct def_declarator_list * declarator_list_create(void * parent);
struct def_expression * expression_create(void * parent);
struct def_expression_statement * expression_statement_create(void * parent);
struct def_external_declaration * external_declaration_create(void * parent);
struct def_function_definition * function_definition_create(void * parent);
struct def_iteration_statement * iteration_statement_create(void * parent);
struct def_jump_statement * jump_statement_create(void * parent);
struct def_multiplicative_expression * multiplicative_expression_create(void * parent);
struct def_parameter_declaration * parameter_declaration_create(void * parent);
struct def_parameter_list * parameter_list_create(void * parent);
struct def_postfixe_expression * postfix_expression_create(void * parent);
struct def_primary_expression * primary_expression_create(void * parent);
struct def_program * program_create(void * parent);
struct def_selection_statement * selection_statement_create(void * parent);
struct def_statement * statement_create(void * parent);
struct def_statement_list * statement_list_create(void * parent);
struct def_unary_expression * unary_expression_create(void * parent);

void additive_expression_print(struct def_additive_expression * str);
void argument_expression_list_print(struct def_argument_expression_list * str);
void comparison_expression_print(struct def_comparison_expression * str);
void compound_statement_print(struct def_compound_statement * str);
void declaration_print(struct def_declaration * str);
void declaration_list_print(struct def_declaration_list * str);
void declarator_print(struct def_declarator * str);
void declarator_list_print(struct def_declarator_list * str);
void expression_print(struct def_expression * str);
void expression_statement_print(struct def_expression_statement * str);
void external_declaration_print(struct def_external_declaration * str);
void function_definition_print(struct def_function_definition * str);
void iteration_statement_print(struct def_iteration_statement * str);
void jump_statement_print(struct def_jump_statement * str);
void multiplicative_expression_print(struct def_multiplicative_expression * str);
void parameter_declaration_print(struct def_parameter_declaration * str);
void parameter_list_print(struct def_parameter_list * str);
void postfix_expression_print(struct def_postfixe_expression * str);
void primary_expression_print(struct def_primary_expression * str);
void program_print(struct def_program * str);
void selection_statement_print(struct def_selection_statement * str);
void statement_print(struct def_statement * str);
void statement_list_print(struct def_statement_list * str);
void unary_expression_print(struct def_unary_expression * str);
#endif
